/*
 * To change this template, choose Tools | Templates
 * and open the template in the editor.
 */
package tp2;

import javax.swing.*;
import java.awt.*;
import java.awt.event.*;

/******************************************************************************
 *******************************MenuPrincipal**********************************
 ******************************************************************************/
/**
 *Cette classe crée le menu principal permettant aux joueurs de naviguer dans le
 * jeu.
 */
public class MenuPrincipal extends JPanel {
    // Liste des composants

    JButton btnNouvelle, btnCharger, btnOptions, btnQuitter;
    JPanel pnlCenter, pnlEast;
    Fenetre fenetre;
  
/**
 * Initialise le menu principal dans la fenetre
 * @param fenetre
 */
    public MenuPrincipal(Fenetre fenetre) {
        
        this.fenetre = fenetre;

        this.initComposants();
        this.initPanneaux();
        this.initEvent();
        

        this.setLayout(new BorderLayout());
        this.add(pnlCenter, BorderLayout.CENTER);
        this.add(pnlEast, BorderLayout.EAST);

    }

    

    
/**
 * Initialise les composants
 */
    private void initComposants() {
        btnNouvelle = new JButton("Nouvelle partie");
        btnCharger = new JButton("Charger une partie");
        btnOptions = new JButton("Options");
        btnQuitter = new JButton("Quitter");
    }
/**
 * Initialise les composants
 */
    private void initPanneaux() {
        pnlCenter = new JPanel();
        pnlEast = new JPanel(new GridLayout(1, 1));
        pnlEast.setPreferredSize(new Dimension(180, 420));
        JLabel image = new JLabel(new ImageIcon(getClass().getResource("/medias/redd.gif")));
        pnlEast.add(image);

        JPanel pnlInterieur = new JPanel(new GridLayout(8, 1));
        pnlInterieur.setPreferredSize(new Dimension(200, 300));

        pnlInterieur.add(new JLabel());
        pnlInterieur.add(btnNouvelle);
        pnlInterieur.add(new JLabel());
        pnlInterieur.add(btnCharger);
        pnlInterieur.add(new JLabel());
        pnlInterieur.add(btnOptions);
        pnlInterieur.add(new JLabel());
        pnlInterieur.add(btnQuitter);

        pnlCenter.add(pnlInterieur);

        
    }
/**
 * initialise les evenements
 */
    private void initEvent() {
        btnOptions.addActionListener(new GererEvenement());
        btnNouvelle.addActionListener(new GererEvenement());
        btnCharger.addActionListener(new GererEvenement());
        btnQuitter.addActionListener(new GererEvenement());
    }
    
   /**
    * Gere les evenements sur les composants du menu principal
    */
    class GererEvenement implements ActionListener {
/**
 * Gere les evenements sur les boutons du menu
 * @param ae
 */
        public void actionPerformed(ActionEvent ae) {
            if (ae.getSource() == btnOptions) {
                fenetre.initOptions();
            } else if (ae.getSource() == btnNouvelle) {
                fenetre.initJeu();


            } else if (ae.getSource() == btnCharger) {
                fenetre.getGame();

            } else if (ae.getSource() == btnQuitter) {
                System.exit(0);
            }
        }
    }
}
